package com.future.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.future.domain.Collection;
import com.future.domain.vo.CollectionTargetVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Map;


@Mapper
public interface CollectionMapper extends BaseMapper<Collection> {
    /**
     * 查询用户收到的收藏数
     * @param userId 用户ID
     * @return 收到的收藏数
     */
    Long selectTotalCollectionsReceived(@Param("userId") Long userId);

    /**
     * 分页查询用户收藏的文章列表
     * @param page 分页对象
     * @param userId 用户ID
     * @return 收藏文章列表
     */
    Page<CollectionTargetVO> selectCollectionArticleList(Page<CollectionTargetVO> page, @Param("userId") Long userId);

    Page<CollectionTargetVO> selectCollectionMediaResourceList(Page<CollectionTargetVO> page,@Param("userId") Long userId);

    /**
     * 查询用户是否收藏了指定目标
     * @param targetId 目标ID
     * @param userId 用户ID
     * @param targetType 目标类型
     * @return 1表示已收藏，0表示未收藏
     */
    int selectCollectOrNotByTargetIdAndType(@Param("targetId") Long targetId, @Param("userId") Long userId, @Param("targetType") String targetType);
}